package org.opens.db.datasource.druid;

import com.alibaba.druid.pool.DruidDataSource;
import org.opens.db.datasource.DataSourceFactory;

import javax.sql.DataSource;

/**
 * 功能描述
 *
 * @author by zhangyuming
 * @date 2023/3/9
 */
public class DruidDataSourceFactory extends DataSourceFactory {

    public static DataSource getInstance(String jdbcUrl, String driver, String user, String pass) {
        final DruidDataSource ds = new DruidDataSource();

        // 基本信息
        ds.setUrl(jdbcUrl);
        ds.setDriverClassName(driver);
        ds.setUsername(user);
        ds.setPassword(pass);

        // 这里可以加入加载properties的逻辑

        // 检查关联配置，在用户未设置某项配置时，设置默认值
        if (null == ds.getValidationQuery()) {
            // 在validationQuery未设置的情况下，以下三项设置都将无效
            ds.setTestOnBorrow(false);
            ds.setTestOnReturn(false);
            ds.setTestWhileIdle(false);
        }

        return ds;
    }

    @Override
    public void destroy() {

    }
}
